SIMULATING THE CONDUCTED EMI PERFORMANCE OF A SWITCHING POWER SUPPLY

SIMPLIS Technologies Inc. APEC 2025 Exhibitor Presentation Demo

This demo uses the Design Verification Module (DVM) of SIMetrix/SIMPLIS to

1) Simulate the conducted noise of a PFC rectifier without a differential-mode input filter.
2) Determine the amount by which the noise exceeds the CISPR 22 Class A noise limits.
3) Calculate the required attenuation for a differential mode filter to meet CISPR 22 Class A limits with a safety margin.
4) Using the Optimiser, determine L and C coefficients of the differential mode filter which result in the required attenuation.
5) Simulate the conducted noise of the PFC rectifier with the designed differential mode filter to verify that the CISPR 22 noise limits have been met.

-------------------------------------------------------------------------------------------------------------------------------------------------------
IMPORTANT NOTE: The demo which you have downloaded is NOT identical to the demo that was shown during the Exhibitor Presentation at APEC 2025 and which
is described in the presentation slide deck which you have also downloaded. That demo used Python to start SIMetrix/SIMPLIS, automate the opening of 
different schematics and the running of different DVM test plans. Python was also used to write a pre-processing script for one of the test plans.

This demo which you have downloaded does NOT use any Python at any part of the process. The steps 1)-5) above can be completed with DVM only and with the
use of only one test plan. At APEC we wished to demonstrate not only the new EMI functionality but also the new Python functionality. However as using 
Python with DVM is still an *experimental feature* in SIMetrix/SIMPLIS, and since we do not ship a Python distribution with SIMetrix/SIMPLIS, we wished
to provide a downloadable demo which users can run without having to enable the experimental Python feature and separately install a supported Python
distribution.

The two demos provide the same results as far as the EMI performance simulation is concerned.

For more information about using Python in DVM, please see: https://simplis.com/version92/whats-new/python

Please note that SIMPLIS Technologies Inc. does not provide support related to the particular contents of user-written Python scripts.
--------------------------------------------------------------------------------------------------------------------------------------------------------

MINIMUM REQUIREMENTS: SIMetrix/SIMPLIS Classic with DVM version 9.2d.

If you do not have access to a version of SIMetrix/SIMPLIS that can run this demo, you can request an evaluation license to try out the required features
by following the process outlined here: https://simplis.com/sales/evaluation/overview

---------------------------------------------------------------------------------------------------------------------------------------------------------

RUNNING THE DEMO

1. Open the schematic PFC_LISN.sxsch. You should see a PFC rectifier where the input filter components C7, L3, L4 and C8 are disabled.

2. In the top menu bar, go to DVM -> Run -> Choose Testplan...

3. Select the PFC_LISN.testplan and click Open.

4. After a few seconds, the test selection window will open. The test plan contains 4 tests. They must be run in order. Click on "PFC LISN" to select all
four tests, and then click OK.

5. DVM will now go through the steps 1)-5) outlined at the top of this document. The entire process will take several minutes.

6. Once everything has completed, you will see a DVM Report. It will contain a graph showing the results of step 5). This will show that the conducted EMI
is below the CISPR 22 Class A limits. Below that you will see the results of the four tests.

Test 1: It is marked FAIL because the noise of the PFC without the input filter exceeds the standard limits. You can click on the Test Report link to see the 
detailed results of Test 1. You can see under "Meets EMI" that is says FAIL as the measured total conducted EMI is more than 20 dBuV above the standard limit.
You can also see this graphically on the first graph in the test report.

To go back to the main DVM report, right click anywhere on the test report and then click Go Back.

Test 2: It is marked as SKIP because this test just runs the Optimiser to find the required filter values, there are no criteria for passing or failing. If you
go into the test report for Test 2 you will just see the frequency responses of all of the filters the Optimiser tried before finding the one with the correct
attenuation.

Test 3: It is marked as PASS because the PFC with the input filter meets the standard limits. If you go into the test report for Test 3, you will see that
"Meets EMI" says PASS as the measured total conducted EMI is below the limit (including the 10 dBuV safety margin). You can also verify graphically that this
is the case.

Test 4: This test only resets the schematic to its original state (disables the input filter again), so it is marked as SKIP.

-----------------------------------------------------------------------------------------------------------------------------------------------------------

EXPLANATION OF THE TEST PLAN STRUCTURE

You can view the test plan by going to DVM -> Edit Testplan and then opening PFC_LISN.testplan.

In row three you will see the definition for the first test, "Run with Input Filter Disabled". There are three "Include" columns in this test plan.
The first includes a file called PFC_LISN_noInputFilter.txt. This modifies the content of the F11 window of the schematic to set the default input filter 
values. These values are actually not used since the filter components are disabled. The second include column includes a library file, multipliers.lb, which
contains the definitions for the multipliers used in the schematic controller. This is included in test 3 and 4 as well since it's needed for the correct
operation of the schematic. The third include is an initial conditions file, PFC_LISN_noInputFilter.init. This initializes the schematic essentially in steady
state in order to speed up the simulation.

The "LoadComponentValues" column for Test 1 specifies the file disable_input_filter.txt. This is a load component values file which disables and shorts inductors
L3 and L4, and disables capacitors C7 and C8 in order to disable the differential mode input filter.

The "PostProcess" column of Test 1 specifies the post-process script PFC_LISN_postprocess.sxscr. This script performs steps 2) and 3) above, determining the 
amount by which the conducted noise exceeds the standard and calculation the required attenuation of the input filter. In order to do this, it calls another,
helper, script called PFC_LISN_calculate_attenuation_frequency.sxscr to do part of the work.

In row five you will see the definition of the second test, "Calculate Input Filter Values". This test has a "NoSimulation" Analysis directive because it does
not perform any simulations of the PFC_LISN.sxsch schematic. The only content of this test is the post-processing script PFC_LISN_calculate_input_filter_values.sxscr.
It's this script that does all of the work of Test 2. It opens up another schematic, called PFC_LISN_Filter_Calculator.sxsch, which contains only the input filter,
and is set up to use the Optimiser to find the filter L and C values which satisfy the required attenuation. This is step 4) above. Once the Optimiser completes,
the script uses the Optimiser result to generate the text file PFC_LISN_with_InputFilter.txt. This file contains .VAR statements which set the L and C values of
the filter in the PFC schematic.

Row seven contains the definition of Test 3, "Run with Input Filter Enabled". In the first "Include" column is the PFC_LISN_with_InputFilter.txt file which sets
the values of C7, C8, L3 and L4 to those calculated by the Optimiser in step 4). The third "Include" column contains the file PFC_LISN_with_InputFilter.init, an
initial conditions file that puts the PFC with the input filter close to steady state, in order to speed up the simulation. The "LoadComponentValues" column for 
Test 3 contains the file enable_input_filter.txt, a load component values file which enables C7, C8, L3 and L4 on the schematic to enable the newly-calculated
differential mode input filter. Test 3 again uses the post-processing script PFC_LISN_postprocess.sxscr to verify that the conducted noise is now below the
standard limits. This completes step 5) in the process described at the top of this document.

Row 9 contains Test 4, "Reset". It's almost identical to the definition of Test 1, except that it has a "NoSimulation" directive. This is becase the purpose of 
Test 4 is just to reset the schematic to the state it was in before running Test 1 - it does not run any simulations.

-----------------------------------------------------------------------------------------------------------------------------------------------------------

You are free to adapt the demo files provided here for your own purposes. For any further questions please contact support@simplis.com.
